/sys/kernel/mm/transparent_hugepag" />

Mongodb主从搭建

您所在的位置:网站首页 mongodb admin库 Mongodb主从搭建

Mongodb主从搭建

2023-04-23 19:24| 来源: 网络整理| 查看: 265

Mongodb主从搭建

内存2以上无特殊要求主IP:192.168.1.100从IP:192.168.1.101准备配置如下,每台服务器都执行sudo echo "never" > /sys/kernel/mm/transparent_hugepage/enabled sudo echo "never" > /sys/kernel/mm/transparent_hugepage/defrag vim /etc/security/limits.conf # 添加mongo用户可以打开的文件数量的限制 mongod soft nofile 64000 mongod hard nofile 64000 mongod soft nproc 32000 mongod hard nproc 320001.0 下载安装Mongo[root@bogon ~]# curl -O http://fastdl.mongodb.org/linux/mongodb-linux-x86_64-3.4.2.tar.gz[root@bogon ~]# tar -zxf mongodb-linux-x86_64-3.4.2.tgz # 解压 [root@bogon ~]# mv mongodb-linux-x86_64-3.4.2 /usr/local/mongo # 移动目录到/usr/local/mongo1.2 主mongo配置[root@bogon mongo]# mkdir /usr/local/mongo/{conf,data,logs} [root@bogon mongo]# vim /usr/local/mongo/conf/mongo.conf port=27017 fork=true logpath=/usr/local/mongo/logs/mongodb.log logappend=true dbpath=/usr/local/mongo/data maxConns=1024 master=true oplogSize=2048port=27017 #端口号 fork=true #以守护进程方式运行 logpath=/usr/local/mongodb/logs/mongodb.log #日志文件 logappend=true #日志输出方式 dbpath=/usr/local/mongodb/data #数据库位置 maxConns=1024 #数据库最大连接数 master=true #主模式 oplogSize=2048 #日志滚动,单位M1.3 从Mongo配置[root@bogon mongo]# mkdir /usr/local/mongo/{conf,data,logs} [root@bogon mongo]# vim /usr/local/mongo/conf/mongo.conf port=27017 fork=true logpath=/usr/local/mongo/logs/mongodb.log logappend=true dbpath=/usr/local/mongo/data maxConns=1024 slave=true source=192.168.1.100:27017 autoresync=trueport=27017 fork=true logpath=/usr/local/mongo/logs/mongodb.log logappend=true dbpath=/usr/local/mongo/data maxConns=1024 slave=true # 从模式 source=192.168.1.100:27017 # 指定主Mongodb autoresync=true # 自动同步[root@localhost ~]# ln -s /usr/local/mongo/bin/* /usr/bin/[root@bogon mongo]# mongod -f /usr/local/mongo/conf/mongo.conf # -f 指定配置文件 [root@bogon mongo]# mongod -f /usr/local/mongo/conf/mongo.conf --shutdown //关闭mongo测试mongo主从同步# 创建一个user库,然后创建集合,插入字段测试是否同步 [root@bogon mongo]# mongo > use test > db.test.save({AGE:18}) > db.test.find() { "_id" :ObjectId("52addd66124c02eb8b2d1a5a"), "AGE" : 18 } //此为查出的数据 > show dbs admin 0.000GB local 0.000GB test 0.000GB # 从库查询数据 [root@bogon mongo]# mongo > use test > db.test.find() { "_id" :ObjectId("52addd66124c02eb8b2d1a5a"), "AGE" : 18 } //此为查出的数据问题解决WARNING: Access control is not enabled for the database

原因分析:新版本的MongDB增加了安全性设计,推荐用户创建使用数据库时进行验证。如果用户想建立简单连接,则会提示警示信息。

解决方法

[root@bogon logs]# mongo # 进入mongo数据库 use admin //进入admin db.createUser({user: 'root', pwd: '123456qwerty!@#$%^', roles: ['root']}) # 创建用户密码和权限 db.auth('root', '123456qwerty!@#$%^') # 返回1 认证成功,返回0认证失败 # 因为mongo的密码是针对库设置的,不是像mysql一样针对全局设置的“errmsg” : “not master and slaveOk=false”

如果从服务器上进入mongo以后使用show dbs查看是否同步数据库报这个错误是正常的 因为SECONDARY是禁止读的

解决方法

# 从库执行 rs.slaveOk() use test db.agre.find() { "_id" : ObjectId("5f87ff66ab2013c2fb746333"), "AGE" : 18 } //从库能查寻到数据即可关于Mongo认证机制--auth:表示带着认证方式进行启动mongod -f /usr/local/mongo/conf/mongo.conf --auth

进入到mongo使用show dbs发现报错

not authorized on admin to execute command { listDatabases: 1.0 }

此时应该先到admin库中进行验证

> use admin > db.auth('root', '123456qwerty!@#$%^') # 返回结果为1则认证成功 > show dbs # 此时查看数据就可以了


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3